/*
 * Terminador.h
 *
 * Created on: 09/10/2012
 */

#ifndef TERMINADOR_H_
#define TERMINADOR_H_

#include <sys/wait.h>
#include <iostream>
#include <vector>
#include "Seniales/SignalHandler.h"
#include "Pipes/Pipe.h"
#include "Utils.h"
#include "Log.h"

using namespace std;

class Terminador : public EventHandler {

private:

	int tiempo;
	vector<pid_t> pidsEntradas;
	vector<pid_t> pidsSalidas;
	vector<Pipe>* pipesSalidas;
	pid_t pidConsulta;

	void cerrarPipes();
	void terminar();

public:

	Terminador(int, vector<Pipe>*);
	virtual ~Terminador();
	void inicializar();
	int handleSignal(int);
	void ejecutar();
	void agregarPidEntrada(pid_t);
	void agregarPidSalida(pid_t);
	void setPidConsulta(pid_t);

};

#endif /* TERMINADOR_H_ */
